#ifndef __TREE_H__
#define __TREE_H__

#include "../../include/Element_data.h"

// 定义树节点结构体
typedef struct Tree_Node
{
    Elenemt_data data;
    struct Tree_Node * lchilb;  // 左孩子
    struct Tree_Node * rchilb;  // 右孩子
}Tree_Node;


// 初始化二叉树
int init_binary_tree(Tree_Node ** root);

// 插入节点
void insert_node(Tree_Node ** root, Elenemt_data data);

// 先序遍历 根 左 右   preorder_traversal
void pre_rder(Tree_Node *root);

// 中序遍历 左 根 右    inorder_traversal
void ino_rder(Tree_Node *root);

// 后序遍历 左 右 根   postorder_traversal
void pos_rder(Tree_Node *root);

// 释放 左 右 根
void free_tree(Tree_Node ** root);


#endif

